package Lexer;

public enum Symbol {
      EOF("eof"),
      EOS("eos"),  // end of statement, similar to ;
      IDENT("Ident"),
      NUMBER("Number"),
      PLUS("+"),
      MINUS("-"),
      MULT("*"),
      DIV("/"),
      LT("<"),
      LE("<="),
      GT(">"),
      GE(">="),
      NEQ("!="),
      EQ("=="),
      ASSIGN("="),
      LEFTPAR("("),
      RIGHTPAR(")"),
      SEMICOLON(";"),
      SE("se"),
      SENAO("senao"),
      REPITA("repita"),
      ENQUANTO("enquanto"),
      FACA("faca"),
      PARA("para"),
      ATE("ate"),
      MOVA("mova"),
      VIRE("vire"),
      ABAIXA("abaixa"),
      LEVANTA("levanta"),
      APAGA("apaga"),
      E("e"),
      OU("ou"),
      NAO("nao"),
      VERDADEIRO("verdadeiro"),
      FALSO("falso"),


      REMAINDER("%"),
      CURLYLEFTBRACE("{"),
      CURLYRIGHTBRACE("}"),
      LEFTSQBRACKET("["),
      RIGHTSQBRACKET("]"),

      COMMA(","),
      COLON(":"),
      LITERAL_STRING("Literal string"),
      LITERAL_CHARACTER("Literal char"),
      AT("@"),
      ;


      Symbol(String name) {
          this.name = name;
      }

      @Override
	public String toString() {
          return name;
      }

      private String name;

}